home *** CD-ROM | disk | FTP | other *** search
- *** perly.c.orig Wed Feb 14 15:29:04 1996
- --- perly.c Wed Feb 14 15:29:05 1996
- ***************
- *** 12,82 ****
- deprecate("\"do\" to call subroutines");
- }
-
- - #line 29 "perly.y"
- - typedef union {
- - I32 ival;
- - char *pval;
- - OP *opval;
- - GV *gvval;
- - } YYSTYPE;
- - #line 23 "y.tab.c"
- - #define WORD 257
- - #define METHOD 258
- - #define FUNCMETH 259
- - #define THING 260
- - #define PMFUNC 261
- - #define PRIVATEREF 262
- - #define FUNC0SUB 263
- - #define UNIOPSUB 264
- - #define LSTOPSUB 265
- - #define LABEL 266
- - #define FORMAT 267
- - #define SUB 268
- - #define ANONSUB 269
- - #define PACKAGE 270
- - #define USE 271
- - #define WHILE 272
- - #define UNTIL 273
- - #define IF 274
- - #define UNLESS 275
- - #define ELSE 276
- - #define ELSIF 277
- - #define CONTINUE 278
- - #define FOR 279
- - #define LOOPEX 280
- - #define DOTDOT 281
- - #define FUNC0 282
- - #define FUNC1 283
- - #define FUNC 284
- - #define RELOP 285
- - #define EQOP 286
- - #define MULOP 287
- - #define ADDOP 288
- - #define DOLSHARP 289
- - #define DO 290
- - #define LOCAL 291
- - #define HASHBRACK 292
- - #define NOAMP 293
- - #define OROP 294
- - #define ANDOP 295
- - #define NOTOP 296
- - #define LSTOP 297
- - #define ASSIGNOP 298
- - #define OROR 299
- - #define ANDAND 300
- - #define BITOROP 301
- - #define BITANDOP 302
- - #define UNIOP 303
- - #define SHIFTOP 304
- - #define MATCHOP 305
- - #define UMINUS 306
- - #define REFGEN 307
- - #define POWOP 308
- - #define PREINC 309
- - #define PREDEC 310
- - #define POSTINC 311
- - #define POSTDEC 312
- - #define ARROW 313
- #define YYERRCODE 256
- short yylhs[] = { -1,
- 31, 0, 5, 3, 6, 6, 6, 7, 7, 7,
- --- 12,17 ----
- ***************
- *** 1381,1393 ****
- int yynerrs;
- int yyerrflag;
- int yychar;
- - short *yyssp;
- - YYSTYPE *yyvsp;
- YYSTYPE yyval;
- YYSTYPE yylval;
- - short yyss[YYSTACKSIZE];
- - YYSTYPE yyvs[YYSTACKSIZE];
- - #define yystacksize YYSTACKSIZE
- #line 571 "perly.y"
- /* PROGRAM */
- #line 1394 "y.tab.c"
- --- 1316,1323 ----
- ***************
- *** 1394,1407 ****
- --- 1324,1382 ----
- #define YYABORT goto yyabort
- #define YYACCEPT goto yyaccept
- #define YYERROR goto yyerrlab
- +
- + struct ysv {
- + short* yyss;
- + YYSTYPE* yyvs;
- + int oldyydebug;
- + int oldyynerrs;
- + int oldyyerrflag;
- + int oldyychar;
- + YYSTYPE oldyyval;
- + YYSTYPE oldyylval;
- + };
- +
- + void
- + yydestruct(ptr)
- + void* ptr;
- + {
- + struct ysv* ysave = (struct ysv*)ptr;
- + if (ysave->yyss) Safefree(ysave->yyss);
- + if (ysave->yyvs) Safefree(ysave->yyvs);
- + yydebug = ysave->oldyydebug;
- + yynerrs = ysave->oldyynerrs;
- + yyerrflag = ysave->oldyyerrflag;
- + yychar = ysave->oldyychar;
- + yyval = ysave->oldyyval;
- + yylval = ysave->oldyylval;
- + Safefree(ysave);
- + }
- +
- int
- yyparse()
- {
- register int yym, yyn, yystate;
- + register short *yyssp;
- + register YYSTYPE *yyvsp;
- + short* yyss;
- + YYSTYPE* yyvs;
- + unsigned yystacksize = YYSTACKSIZE;
- + int retval = 0;
- #if YYDEBUG
- register char *yys;
- extern char *getenv();
- + #endif
-
- + struct ysv *ysave = (struct ysv*)safemalloc(sizeof(struct ysv));
- + SAVEDESTRUCTOR(yydestruct, ysave);
- + ysave->oldyydebug = yydebug;
- + ysave->oldyynerrs = yynerrs;
- + ysave->oldyyerrflag = yyerrflag;
- + ysave->oldyychar = yychar;
- + ysave->oldyyval = yyval;
- + ysave->oldyylval = yylval;
- +
- + #if YYDEBUG
- if (yys = getenv("YYDEBUG"))
- {
- yyn = *yys;
- ***************
- *** 1414,1419 ****
- --- 1389,1402 ----
- yyerrflag = 0;
- yychar = (-1);
-
- + /*
- + ** Initialize private stacks (yyparse may be called from an action)
- + */
- + ysave->yyss = yyss = (short*)safemalloc(yystacksize*sizeof(short));
- + ysave->yyvs = yyvs = (YYSTYPE*)safemalloc(yystacksize*sizeof(YYSTYPE));
- + if (!yyvs || !yyss)
- + goto yyoverflow;
- +
- yyssp = yyss;
- yyvsp = yyvs;
- *yyssp = yystate = 0;
- ***************
- *** 1429,1435 ****
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- ! printf("yydebug: state %d, reading %d (%s)\n", yystate,
- yychar, yys);
- }
- #endif
- --- 1412,1418 ----
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- ! fprintf(stderr, "yydebug: state %d, reading %d (%s)\n", yystate,
- yychar, yys);
- }
- #endif
- ***************
- *** 1439,1450 ****
- {
- #if YYDEBUG
- if (yydebug)
- ! printf("yydebug: state %d, shifting to state %d\n",
- yystate, yytable[yyn]);
- #endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- ! goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- --- 1422,1447 ----
- {
- #if YYDEBUG
- if (yydebug)
- ! fprintf(stderr, "yydebug: state %d, shifting to state %d\n",
- yystate, yytable[yyn]);
- #endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- ! /*
- ! ** reallocate and recover. Note that pointers
- ! ** have to be reset, or bad things will happen
- ! */
- ! int yyps_index = (yyssp - yyss);
- ! int yypv_index = (yyvsp - yyvs);
- ! yystacksize += YYSTACKSIZE;
- ! ysave->yyvs = yyvs =
- ! (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
- ! ysave->yyss = yyss =
- ! (short*)realloc((char*)yyss,yystacksize * sizeof(short));
- ! if (!yyvs || !yyss)
- ! goto yyoverflow;
- ! yyssp = yyss + yyps_index;
- ! yyvsp = yyvs + yypv_index;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- ***************
- *** 1480,1491 ****
- {
- #if YYDEBUG
- if (yydebug)
- ! printf("yydebug: state %d, error recovery shifting\
- ! to state %d\n", *yyssp, yytable[yyn]);
- #endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- ! goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- --- 1477,1503 ----
- {
- #if YYDEBUG
- if (yydebug)
- ! fprintf(stderr,
- ! "yydebug: state %d, error recovery shifting to state %d\n",
- ! *yyssp, yytable[yyn]);
- #endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- ! /*
- ! ** reallocate and recover. Note that pointers
- ! ** have to be reset, or bad things will happen
- ! */
- ! int yyps_index = (yyssp - yyss);
- ! int yypv_index = (yyvsp - yyvs);
- ! yystacksize += YYSTACKSIZE;
- ! ysave->yyvs = yyvs = (YYSTYPE*)realloc((char*)yyvs,
- ! yystacksize * sizeof(YYSTYPE));
- ! ysave->yyss = yyss = (short*)realloc((char*)yyss,
- ! yystacksize * sizeof(short));
- ! if (!yyvs || !yyss)
- ! goto yyoverflow;
- ! yyssp = yyss + yyps_index;
- ! yyvsp = yyvs + yypv_index;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- ***************
- *** 1495,1502 ****
- {
- #if YYDEBUG
- if (yydebug)
- ! printf("yydebug: error recovery discarding state %d\n",
- ! *yyssp);
- #endif
- if (yyssp <= yyss) goto yyabort;
- --yyssp;
- --- 1507,1515 ----
- {
- #if YYDEBUG
- if (yydebug)
- ! fprintf(stderr,
- ! "yydebug: error recovery discarding state %d\n",
- ! *yyssp);
- #endif
- if (yyssp <= yyss) goto yyabort;
- --yyssp;
- ***************
- *** 1513,1520 ****
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- ! printf("yydebug: state %d, error recovery discards token %d (%s)\n",
- ! yystate, yychar, yys);
- }
- #endif
- yychar = (-1);
- --- 1526,1534 ----
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- ! fprintf(stderr,
- ! "yydebug: state %d, error recovery discards token %d (%s)\n",
- ! yystate, yychar, yys);
- }
- #endif
- yychar = (-1);
- ***************
- *** 1523,1529 ****
- yyreduce:
- #if YYDEBUG
- if (yydebug)
- ! printf("yydebug: state %d, reducing by rule %d (%s)\n",
- yystate, yyn, yyrule[yyn]);
- #endif
- yym = yylen[yyn];
- --- 1537,1543 ----
- yyreduce:
- #if YYDEBUG
- if (yydebug)
- ! fprintf(stderr, "yydebug: state %d, reducing by rule %d (%s)\n",
- yystate, yyn, yyrule[yyn]);
- #endif
- yym = yylen[yyn];
- ***************
- *** 2242,2249 ****
- {
- #if YYDEBUG
- if (yydebug)
- ! printf("yydebug: after reduction, shifting from state 0 to\
- ! state %d\n", YYFINAL);
- #endif
- yystate = YYFINAL;
- *++yyssp = YYFINAL;
- --- 2256,2264 ----
- {
- #if YYDEBUG
- if (yydebug)
- ! fprintf(stderr,
- ! "yydebug: after reduction, shifting from state 0 to state %d\n",
- ! YYFINAL);
- #endif
- yystate = YYFINAL;
- *++yyssp = YYFINAL;
- ***************
- *** 2257,2263 ****
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- ! printf("yydebug: state %d, reading %d (%s)\n",
- YYFINAL, yychar, yys);
- }
- #endif
- --- 2272,2278 ----
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- ! fprintf(stderr, "yydebug: state %d, reading %d (%s)\n",
- YYFINAL, yychar, yys);
- }
- #endif
- ***************
- *** 2272,2291 ****
- yystate = yydgoto[yym];
- #if YYDEBUG
- if (yydebug)
- ! printf("yydebug: after reduction, shifting from state %d \
- ! to state %d\n", *yyssp, yystate);
- #endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- ! goto yyoverflow;
- }
- *++yyssp = yystate;
- *++yyvsp = yyval;
- goto yyloop;
- yyoverflow:
- ! yyerror("yacc stack overflow");
- yyabort:
- ! return (1);
- yyaccept:
- ! return (0);
- }
- --- 2287,2321 ----
- yystate = yydgoto[yym];
- #if YYDEBUG
- if (yydebug)
- ! fprintf(stderr,
- ! "yydebug: after reduction, shifting from state %d to state %d\n",
- ! *yyssp, yystate);
- #endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- ! /*
- ! ** reallocate and recover. Note that pointers
- ! ** have to be reset, or bad things will happen
- ! */
- ! int yyps_index = (yyssp - yyss);
- ! int yypv_index = (yyvsp - yyvs);
- ! yystacksize += YYSTACKSIZE;
- ! ysave->yyvs = yyvs =
- ! (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
- ! ysave->yyss = yyss =
- ! (short*)realloc((char*)yyss,yystacksize * sizeof(short));
- ! if (!yyvs || !yyss)
- ! goto yyoverflow;
- ! yyssp = yyss + yyps_index;
- ! yyvsp = yyvs + yypv_index;
- }
- *++yyssp = yystate;
- *++yyvsp = yyval;
- goto yyloop;
- yyoverflow:
- ! yyerror("Out of memory for yacc stack");
- yyabort:
- ! retval = 1;
- yyaccept:
- ! return retval;
- }
-